ceph三种存储(块存储,文件存储,对象存储)创建方法

您所在的位置:网站首页 块存储 对象存储 ceph三种存储(块存储,文件存储,对象存储)创建方法

ceph三种存储(块存储,文件存储,对象存储)创建方法

2023-03-11 18:29| 来源: 网络整理| 查看: 265

非常详细的 Ceph 介绍以及创建方法

转载于 https://zhuanlan.zhihu.com/p/269474049

1. Ceph架构简介及使用场景介绍 1.1 Ceph简介

Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。

Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表),并随后贡献给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。

1.2 Ceph特点

高性能

a. 摒弃了传统的集中式存储元数据寻址的方案,采用CRUSH算法,数据分布均衡,并行度高。

b.考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。

c. 能够支持上千个存储节点的规模,支持TB到PB级的数据。

高可用性

a. 副本数可以灵活控制。

b. 支持故障域分隔,数据强一致性。

c. 多种故障场景自动进行修复自愈。

d. 没有单点故障,自动管理。

高可扩展性

a. 去中心化。

b. 扩展灵活。

c. 随着节点增加而线性增长。

特性丰富

a. 支持三种存储接口:块存储、文件存储、对象存储。

b. 支持自定义接口,支持多种语言驱动。

1.3 Ceph架构

支持三种接口:

Object:有原生的API,而且也兼容Swift和S3的API。

Block:支持精简配置、快照、克隆。

File:Posix接口,支持快照。

1.4 Ceph核心组件及概念介绍

Monitor

一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据。

OSD

OSD全称Object Storage Device,也就是负责响应客户端请求返回具体数据的进程。一个Ceph集群一般都有很多个OSD。

MDS

MDS全称Ceph Metadata Server,是CephFS服务依赖的元数据服务。

Object

Ceph最底层的存储单元是Object对象,每个Object包含元数据和原始数据。

PG

PG全称Placement Grouops,是一个逻辑的概念,一个PG包含多个OSD。引入PG这一层其实是为了更好的分配数据和定位数据。

RADOS

RADOS全称Reliable Autonomic Distributed Object Store,是Ceph集群的精华,用户实现数据分配、Failover等集群操作。

Libradio

Librados是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFS都是通过librados访问的,目前提供PHP、Ruby、Java、Python、C和C++支持。

CRUSH

CRUSH是Ceph使用的数据分布算法,类似一致性哈希,让数据分配到预期的地方。

RBD

RBD全称RADOS block device,是Ceph对外提供的块设备服务。

RGW

RGW全称RADOS gateway,是Ceph对外提供的对象存储服务,接口与S3和Swift兼容。

CephFS

CephFS全称Ceph File System,是Ceph对外提供的文件系统服务。

1.5 三种存储类型-块存储

典型设备:磁盘阵列,硬盘

主要是将裸磁盘空间映射给主机使用的。

优点:

通过Raid与LVM等手段,对数据提供了保护。

多块廉价的硬盘组合起来,提高容量。

多块磁盘组合出来的逻辑盘,提升读写效率。

缺点:

采用SAN架构组网时,光纤交换机,造价成本高。

主机之间无法共享数据。

使用场景:

docker容器、虚拟机磁盘存储分配。

日志存储。

文件存储。

1.6 三种存储类型-文件存储

典型设备:FTP、NFS服务器

为了克服块存储文件无法共享的问题,所以有了文件存储。

在服务器上架设FTP与NFS服务,就是文件存储。

优点:

造价低,随便一台机器就可以了。

方便文件共享。

缺点:

读写速率低。

传输速率慢。

使用场景:

日志存储。

有目录结构的文件存储。

1.7 三种存储类型-对象存储

典型设备:内置大容量硬盘的分布式服务器(swift, s3)

多台服务器内置大容量硬盘,安装上对象存储管理软件,对外提供读写访问功能。

优点:

具备块存储的读写高速。

具备文件存储的共享等特性。

使用场景:(适合更新变动较少的数据)

图片存储。

视频存储。

2. 三种存储的创建方法 块存储

1.建立存储池,并初始化(注意:在客户端操作)

ceph osd pool create rbd_pool 128

rbd pool init rbd_pool

2、创建一个存储卷(client操作)

卷名为volume1,大小为5000M

rbd create volume1 --pool rbd_pool --size 5000

rbd ls rbd_pool #查看卷列表

rbd info volume1 -p rbd_pool #查看卷信息

3、创建Ceph块存储

将创建的卷映射成块设备

rbd map rbd_pool/volume1

因为rbd镜像的一些特性,OS kernel并不支持,所以映射报错

rbd feature disable rbd_pool/volume1 object-map fast-diff deep-flatten

再次映射

rbd map rbd_pool/volume1

4、使用Ceph块存储

查看映射

rbd showmapped

格式化,挂载

mkfs.xfs /dev/rbd0

mount /dev/rbd1 /mnt/

5、块存储扩容

在线扩容,扩容成8000M

rbd resize --size 8000 rbd_pool/volume1

rbd info rbd_pool/volume1 | grep size

挂载格式扩容

xfs_growfs -d /dev/rbd0

6、删除块存储

umount /mnt/

rbd unmap /dev/rbd0

ceph osd pool delete rbd_pool rbd_pool --yes-i-really-really-mean-it

文件存储

1、配置pool格式

在node1部署节点上同步配置文件,并创建mds服务(也可以做多个mds实现HA)

ceph-deploy mds create node1 node2 node3

一个Ceph文件系统需要至少两个RADOS存储池,一个用于数据,一个用于元数据。(client执行)

ceph osd pool create cephfs_pool 128

ceph osd pool create cephfs_metadata 64

2、创建Ceph文件系统

创建Ceph文件系统,并确认客户端访问的节点

ceph fs new cephfs cephfs_metadata cephfs_pool

ceph fs ls

ceph mds stat

3、客户端准备验证key文件

ceph默认启用了cephx认证, 所以客户端的挂载必须要验证在集群节点(node1,node2,node3)上任意一台查看密钥字符串

cat /etc/ceph/ceph.client.admin.keyring #node1

在客户端client上创建一个文件记录密钥字符串

vim admin.key

创建一个密钥文件,复制粘贴上面红色标出的字符串

Chmod 600 admin.key

4、客户端挂载(client执行)

挂载ceph集群中运行mon监控的节点, mon监控为6789端口

yum -y install ceph-fuse ceph

mount -t ceph node1:6789:/ /mnt -o name=admin,secretfile=/root/admin.key

5、删除文件存储(client执行)

在客户端上删除数据,并umount所有挂载

rm -rf /mnt/*

umount /mnt/

停掉所有node节点的mds(只有停掉mds才能删除文件存储,之后启动)

systemctl stop ceph-mds.target

回到集群任意一个节点上(client执行)删除

ceph fs rm cephfs --yes-i-really-mean-it

ceph osd pool delete cephfs_metadata cephfs_metadata --yes-i-really-really-mean-it

ceph osd pool delete cephfs_pool cephfs_pool --yes-i-really-really-mean-it

对象存储

1、测试ceph对象网关的连接

在node1上创建rgw

apt install ceph-radosgw(找不到包就去阿里云镜像站下载)

ceph orch apply rgw create ceph01

客户端创建一个测试用户(access_key与secret_key,用于连接对象存储网关)

radosgw-admin user create --uid="testuser" --display -name="First User"

2、S3连接ceph对象网关

AmazonS3是一种面向Internet的对象存储服务.我们这里可以使用s3工具连接ceph的对象存储进行操作

客户端安装s3cmd工具,并编写ceph连接配置文件

yum install s3cmd -y

创建并编写下面的文件

vim /root/.s3cfg

[default]

access_key = E9GTLFFZ6D19G3VN9652

secret_key = djvdvqFzawGBW0qt2c3RfVz4X86GB2f2VwnML1EC

host_base = 192.168.44.12:7480

host_bucket = 192.168.44.12:7480/%(bucket)

cloudfront_host = 192.168.44.12:7480

use_https = False

3、命令测试

列出bucket,可以查看到先前测试创建的my-new-bucket

s3cmd mb s3://test_bucket #创建一个test_bucket

s3cmd ls #查看已经有的连接

上传文件

s3cmd put /etc/fstab s3://test_bucket/aaa

下载文件

s3cmd get s3://test_bucket/aaa



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3